package com.fivefu.core.camera.services;

import com.fivefu.core.camera.entity.DbMonitorCameraLabel;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 探头标签关联表 服务类
 * </p>
 *
 * @author 
 * @since 2022-09-20 19:45:47
 */
public interface DbMonitorCameraLabelService extends IService<DbMonitorCameraLabel> {

    /**
     * 通过标签编号集合查询关联探头集合
     * @param labels 标签编号集合
     * @return
     */
    Set<String> queryMonitorCameraByLabelIds(List<Long> labels);

    /**
     *
     * 查询该标签下的探头数量
     * @param id 标签id
     */
    Integer queryMonInLabNum(Long id);

    /**
     * 删除标签下探头
     * @param labelId 标签编号
     * @param cameraCodes 探头编号集合
     * @param userId 操作用户编号
     */
    void delMonitorCameraLabelByLabelId(Long labelId, List<String> cameraCodes,String userId);

    /**
     * 编辑探头标签
     * @param cameraCode 探头编号
     * @param labelList 标签集合
     * @param userid 操作用户
     */
    void editMonitorCameraLabel(String cameraCode, List<Long> labelList, String userid);


    /**
     * 探头新增标签
     * @param cameraCode 探头编号
     * @param labelId 标签编号
     * @param userid 操作用户编号
     * @return
     */
    Long insertMonitorCameraLabel(String cameraCode, Long labelId, String userid);

    /**
     * 通过探头编号查询关联标签信息
     * @param cameraCode 探头编号
     * @return
     */
    List<DbMonitorCameraLabel> queryLabelsByCameraCode(String cameraCode);
}
